from flask import Flask, request, jsonify
import pandas as pd
from itertools import combinations


app = Flask(__name__)
# 加载模型
frequent_itemsets =pd.read_pickle('./frequent_itemsets.pk1')
rules = pd.read_pickle('./rules.pk1')

@app.route("/recommend",methods=['POST'])
def recommend():
    #接收传过来的参数
    data = request.json.get('items', [])
    #生成关联规则推荐
    recommendDations=[]
    for idx, rule in rules.iterrows():
        antecedents = list(rule['antecedents'])
        consequents = list(rule['consequents'])
        
        #检查规则前件是否跟输入匹配
        if set(antecedents).issubset(set(data)):
            recommendDations.extend(consequents)
# 去重并返回结果
    recommendDations = list(set(recommendDations) - set(data))
    return jsonify({"recommendDations":recommendDations})

if __name__=="__main__":
    app.run()